package seg.cd;



public class CornerDetector {

	public enum TYPE {
		ThetaSigma,
		Maximum
	}

	private double[] rhos;

	private int[] index;

	private int K;

	private int start;

	private int end;

	public double[] getRhos() {
		return rhos;
	}

	public void setRhos(double[] rhos) {
		this.rhos = rhos;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	public int getEnd() {
		return end;
	}

	public void setEnd(int end) {
		this.end = end;
	}

	public int getK() {
		return K;
	}

	public void setK(int k) {
		K = k;
	}

	public CornerDetector(int k, double[] rs) {
		setK(k);
		setRhos(rs);
	}

	public void setInterval(int s, int e) {
		setStart(s);
		setEnd(e);
	}

	public void filtrate() {

	}

	public int[] getIndex() {
		return index;
	}

	public void setIndex(int[] index) {
		this.index = index;
	}

	public static CornerDetector getCD(TYPE t, int k, double[] rhos) {
		if (t == TYPE.Maximum)
			return new CDMaximum(k, rhos);
		if (t == TYPE.ThetaSigma)
			return new CDThetaSigma(k, rhos);
		return null;
	}
}
